import { removeEmptyProperties } from '@/utils'
import { clone } from 'radash'

import alova from './alova'

/** 获取一言 */
export function getHitokoto(params?: Partial<HitokotoReq>) {
  let newParams: Partial<HitokotoReq> = {}

  if (params) {
    newParams = clone(removeEmptyProperties(params))

    const { c } = params

    if (c && c.length > 1) {
      delete newParams.c

      newParams.c = (c as []).join('&c=')
    }
  }

  return alova.Get<HitokotoResp>('/hitokoto', {
    params: newParams,
  })
}

/** 获取古诗 */
export function getPoetry() {
  return alova.Get<{

    /** 作者 */
    author: string

    /** 类型 */
    category: string

    /** 内容 */
    content: string

    /** 来源 */
    origin: string
  }>('/gsapi/all.json')
}

export function getLocal() {
  return alova.Get<{
    /** apaaa */ apa: string
    /** welcomeaa */ welcome: string
  }>('/local')
}

export function getApi() {
  return alova.Get<TransformDataType[], ApiResponseType<TransformDataType[]>>('/test', {
    // 数据转换器，将返回的数据转换为需要的类型，默认为原数据
    transform(data, _headers) {
      console.log('transform', data)

      return data.data
    }
  })
}
